..:: Menu ::.. ..:: Lekcja 4: Podstawy Object Pascala część: 4 ::.. ..::Info i Reklamy::..

Instrukcja case

Instrukcja case jest w działaniu podobna do instrukcji if. Wymyślił ją pewnie ktoś komu nie chciało się pisać tyle razy if. Stosujemy ją bowiem wtedy kiedy mamy dużo warunków if.
var Liczba: Integer;
sText : String;

begin
Randomize; // uruchamiamy bęben losujący :)
Liczba := Random(20); // losuj z zakresu 20
case Liczba of
1: sText := 'Wylosowałeś 1!';
10: sText := 'Sam środek!';
19: sText := 'Sam koniec';
end;
end.
Budowa instrukcji case jest także specyficzna. Najpierw słowo kluczowe case, później zmienna, która będzie porównywana, a na końcu słowo of. Później wartości zmiennej "Liczba". Np. jeżeli wylosowana zostanie 1 to potem średnik. Następnie chcemy, aby do zmiennej sText przypisać jakiś tekst. Itd. W instrukcji case możesz także wykorzystać instrukcję else:
case Liczba of
1: sText := 'Wylosowałeś 1!';
10: sText := 'Sam środek!';
19: sText := 'Sam koniec';
else sText := 'Eeee, już nic.';
end;
Tak jak w przypadku instrukcji if jeżeli masz dwie linie komend musisz wszystko wziąć pomiędzy blok begin i end:
case Liczba of
1: begin { będą dwie linie - trzeba użyć słowa begin }
sText := 'Wylosowałeś 1!';
Liczba := 2;
end; { koniec całego bloku }
{ ... }
end;
Instrukcja case ma jeszcze jedną zaletę. Można w niej określić wartość od do - spójrz:
case Liczba of
1..10: sText := 'Wylosowałeś liczbe od 1 do 10!';
11..20: sText := 'Sam środek!';
21..40: sText := 'Sam koniec';
end;
Rozumiesz? Tekst "Sam koniec" zostanie wyświetlony wtedy, gdy zmienna Liczba będzie wartości od 21 do 40.

Typy

Nowe typy danych można w programie rejestrować stosując słowo kluczowe type. Np.:
type
TPartie = (ppSLD, ppSamoobrona, ppPO, ppPiS);
Można również deklarować typy liczbowe:
type
NowyTyp = 0..20;
W tym wypadku zmienna korzystająca z tego typu może mieć wartość od 0 do 20. Tak, teraz możemy normalnie korzystać z tego typu:
var NT : NowyTyp;
No, i wszystko jasne..
Napiszmy teraz przykładowy program korzystający z typów. Oto cała treść programu - przyjrzyj mu się, a ja zaraz go opiszę:

{
Copyright (c) 2001 - Adam Boduch
}

program typy;

uses
Windows;

type
TPartie = (ppSLD, ppSamoobrona, ppPO, ppPiS);

var
sText : PChar;
Wybory : TPartie;

begin
Randomize; // uruchamiamy bęben losujący :)

Wybory := TPartie(Random(4));

case Wybory of
ppSLD: sText := 'Sebastian Florek pomógł! Miler się cieszy';
ppSamoobrona: sText := 'Idziemy blokować drogi! Lepper na prezydenta!';
PPPO : sText := 'Nie finansować partii z budżetu państwa!';
ppPiS : sText := 'Przywrócić karę śmierci!';
end;

MessageBox(0, sText, 'Wybory 2001', MB_OK);
end.
Co my tu mamy... Zadeklarowałem nowy typ TPartie ( reguła nakazuje, aby nowy typ nazywać od litery T ). Później utworzyłem zmienną do tego typu i nazwałem ją Wybory. Następnie do zmiennej Wybory przypisana zostaje losowa wartość ( albo ppSLD, albo ppSamoobrona, ppPo lub ppPiS ). Zwróć uwagę na specyficzny zapis procedury losowania:
Wybory := TPartie(Random(4));
Losujemy spośród czterech bo tyle mamy partii. To co tutaj użyłem nazywa się rzutowaniem. O rzutowaniu będzie mowa później. Na razie powiem, że jest to sposób na oszukanie kompilatora.
Idziemy dalej: następnie w zależności od wylosowanej partii do zmiennej sText zostaje przypisany odpowiedni tekst. Następnie ten tekst zostaje wyświetlony w oknie.
<--- Wstecz | Dalej --->

   
©Copyright by garUs